Live streaming to network devices, such as portable computer, cellular phones, and Personal Digital Assistants (PDAs), is a challenging task especially due to their heterogeneity. That is, the network devices differ in display size, main memory, processor, media capability, and network access technology. In typical streaming systems, live media adaptation is performed to meet the requirements of heterogeneous mobile terminals. For video, media adaptation is often achieved by video transcoding. Video transcoding converts an original video bitstream to a new bitstream for a different encoding standard, smaller spatial resolution, reduced frame rate, or reduced quality (due to coarser quantization). However, transcoding poses a considerable computational burden on the streaming server because mobile devices often require individually customized transcoding.
Traditionally, video transcoding for a mobile device has been performed at a single media server. When the server is over-loaded with concurrent transcoding/streaming tasks, clients may experience interruption in receiving video. Since the server is a single point of service to provide the streaming service, one must provide redundancy to the system to avoid server overload in order to offer incessant streaming to the clients.
Video support of mobile devices such as cellular phones has been expensive due to its computational complexity caused by transcoding the video data for each mobile user. Peer-to-Peer (P2P) systems have been considered to be more cost-effective than server-client based systems. One major weakness of the P2P systems, however, is that the streaming service is easily disrupted due to unexpected peer churn, that is, the dynamics created by the peers joining or leaving the network system. When peers leave the system without prior notice, other peers connected to the departing peers may experience temporary service disruption and/or disconnection.